iT邦幫忙

2022 iThome 鐵人賽

DAY 17
0
自我挑戰組

30天玩轉規劃LINE BOT系列 第 17

第17天:增加 line bot 機器人功能(一)

  • 分享至 

  • xImage
  •  

要給用戶作預約,就可能需要有多項內容給他們選,那接下來做服務類型選擇。
我預計是做這樣的選項:

  1. 預約
    1.1. 類別1
    1.1.1.餐點甲
    1.1.2.餐點乙
    1.1.3.餐點丙
    1.2. 類別2
    1.2.1.餐點A
    1.2.2.餐點B
    1.2.3.餐點C
    1.3. 類別3
    1.3.1.餐點一
    1.3.2.餐點二
    1.3.3.餐點三

這樣的話,我就要使用Documentation裡的模板功能,【Image carousel template】與【Carousel template】
https://ithelp.ithome.com.tw/upload/images/20221001/20144761VF5AvzO7Vh.png
https://ithelp.ithome.com.tw/upload/images/20221001/201447616RZcm2lDNo.png
【Image carousel template】【Image carousel template:line-bot-sdk-python程式碼】
【Carousel template】【Carousel template:line-bot-sdk-python程式碼】

資料夾events新增一個python的檔案命名為【service】
https://ithelp.ithome.com.tw/upload/images/20221002/20144761o7IoAQgwlV.png

首先輸入以下程式碼,導入line_bot_api:
from line_bot_api import *

然後定義一個service_category_event事件,程式碼:
def service_category_event(event):

再從)【Image carousel template:line-bot-sdk-python程式碼】複製Image carousel templat的程式碼貼上。
https://ithelp.ithome.com.tw/upload/images/20221002/20144761DQp486Ocb7.png

貼上後可以發先,TemplateSendMessage, ImageCarouselTemplate, ImageCarouselColumn, PostbackAction這四個都有紅底波浪紋,所以就要到line_bot_api將這些添加入linebot.models
https://ithelp.ithome.com.tw/upload/images/20221002/20144761idFqXWf7td.png

完成之後,紅色波浪紋就消失了
https://ithelp.ithome.com.tw/upload/images/20221002/20144761DkohH5oOEw.png

再來到主程式,用以下程式碼,將service的程式都匯入:
from events.service import *
https://ithelp.ithome.com.tw/upload/images/20221002/20144761ARLTlriYzG.png

在到主程式下方的@handler.add內添加程式碼,讓這呼叫service內的service_category_event:
elif message_text == '@預約':
service_category_event(event)
https://ithelp.ithome.com.tw/upload/images/20221002/20144761kVO4aG97Cr.png

在來重啟伺服器測,點選'@預約'試看看:
https://ithelp.ithome.com.tw/upload/images/20221002/20144761qZ1Uc6ITvg.jpg

看來沒問題,接下來就是新增handler.add,要接收客戶postback的訊息,程式碼:
@handler.add(PostbackEvent)
def handle_postback(event):
data = dict(parse_qsl(event.postback.data))
print(data['action'])
print(data['itemid'])
https://ithelp.ithome.com.tw/upload/images/20221002/20144761w7yWs3H5le.png

也是一樣看到PostbackEvent與parse_qsl都是紅底波浪,所以到line_bot_api添加PostbackEvent以及在主程式添加parse_qsl
https://ithelp.ithome.com.tw/upload/images/20221002/20144761Qb1JhNSwpA.png
https://ithelp.ithome.com.tw/upload/images/20221002/20144761yxgozHhun8.png

然後再來測試看看,即可看到action=buy,itemid=1
https://ithelp.ithome.com.tw/upload/images/20221002/20144761JhTA01URI2.png

這樣就已經完成,能給客戶選擇,以及接收客戶選擇的資訊了。
後續在內容修改就在搭建完成後,一次編輯,以及分享是用哪些工具編輯。

下一篇,就繼續增加 line bot 機器人功能


上一篇
第16天:重構優化
下一篇
第18天:增加 line bot 機器人功能(二)
系列文
30天玩轉規劃LINE BOT30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
arguskao
iT邦新手 3 級 ‧ 2022-12-21 00:04:37

@handler.add(PostbackEvent)
def handle_postback(event):
data = dict(parse_qsl(event.postback.data))
print(data['action'])
print(data['itemid'])

請問這一段是放在哪一個py裡面?

我要留言

立即登入留言